package com.fowo.api.model.nav.after.sell.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 订单管理售后工单 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class NavAfterSellOrderImportPo {

  /** 所属订单管理 */
  @ExcelProperty("所属订单管理")
  @LongString(message = "所属订单管理数值格式不正确", label = "所属订单管理")
  private String navSellOrderId;

  /** 售后单号 */
  @ExcelProperty("*售后单号")
  @NotBlank(message = "售后单号不能为空")
  private String afterId;

  /** 系统单号 */
  @ExcelProperty("*系统单号")
  @NotBlank(message = "系统单号不能为空")
  @Size(max = 64, message = "系统单号长度不能超过64")
  private String orderId;

  /** 店铺 */
  @ExcelProperty("*店铺")
  @NotBlank(message = "店铺不能为空")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopInfoShopName;

  @ExcelIgnore
  @Schema(title = "*店铺")
  private String shopInfo;

  /** 站点 */
  @ExcelProperty("站点")
  @Size(max = 50, message = "站点长度不能超过50")
  private String siteName;

  @ExcelIgnore
  @Schema(title = "站点")
  private String site;

  /** 售后类型 */
  @ExcelProperty("*售后类型")
  @NotBlank(message = "售后类型不能为空")
  private String type;

  /** 售后原因 */
  @ExcelProperty("*售后原因")
  @NotBlank(message = "售后原因不能为空")
  private String reason;

  /** 订单来源 */
  @ExcelProperty("订单来源")
  private String source;

  /** 订单标签 */
  @ExcelProperty("订单标签")
  private String tag;

  /** 自发货截单 */
  @ExcelProperty("自发货截单")
  private String cut;

  /** 退款状态 */
  @ExcelProperty("退款状态")
  private String refundStatus;

  /** 退款方式 */
  @ExcelProperty("*退款方式")
  @NotBlank(message = "退款方式不能为空")
  private String way;

  /** 订单状态 */
  @ExcelProperty("订单状态")
  private String status;

  /** 售后状态内容 */
  @ExcelProperty("售后状态内容")
  @Size(max = 2048, message = "售后状态内容长度不能超过2048")
  private String statusExplain;

  /** 物流商返回的物流单号 */
  @ExcelProperty("物流商返回的物流单号")
  @Size(max = 50, message = "物流商返回的物流单号长度不能超过50")
  private String deliveryWaybillId;

  /** 买家姓名 */
  @ExcelProperty("买家姓名")
  @Size(max = 50, message = "买家姓名长度不能超过50")
  private String buyerName;

  /** 买家邮箱 */
  @ExcelProperty("买家邮箱")
  @Size(max = 50, message = "买家邮箱长度不能超过50")
  private String buyerEmail;

  /** 客选物流 */
  @ExcelProperty("客选物流")
  @Size(max = 50, message = "客选物流长度不能超过50")
  private String deliveryLogisticsLabel;

  @ExcelIgnore
  @Schema(title = "客选物流")
  private String deliveryLogistics;

  /** 客付运费 */
  @ExcelProperty("客付运费")
  @DecimalString(message = "客付运费小数格式不正确", label = "客付运费")
  private String deliveryRealFreight;

  /** 跟踪号 */
  @ExcelProperty("跟踪号")
  @Size(max = 50, message = "跟踪号长度不能超过50")
  private String deliveryTrackId;

  /** 收件人 */
  @ExcelProperty("收件人")
  @Size(max = 50, message = "收件人长度不能超过50")
  private String deliveryReceipt;

  /** 邮编 */
  @ExcelProperty("邮编")
  @Size(max = 50, message = "邮编长度不能超过50")
  private String deliveryZipCode;

  /** 电话 */
  @ExcelProperty("电话")
  @Size(max = 50, message = "电话长度不能超过50")
  private String deliveryPhone;

  /** 国家/地区 */
  @ExcelProperty("国家/地区")
  @Size(max = 200, message = "国家/地区长度不能超过200")
  private String deliveryCountryCountry;

  @ExcelIgnore
  @Schema(title = "国家/地区")
  private String deliveryCountry;

  /** 省/州 */
  @ExcelProperty("省/州")
  @Size(max = 50, message = "省/州长度不能超过50")
  private String deliveryProvince;

  /** 城市 */
  @ExcelProperty("城市")
  @Size(max = 50, message = "城市长度不能超过50")
  private String deliveryCity;

  /** 区/县 */
  @ExcelProperty("区/县")
  @Size(max = 50, message = "区/县长度不能超过50")
  private String deliveryArea;

  /** 门牌号 */
  @ExcelProperty("门牌号")
  @Size(max = 50, message = "门牌号长度不能超过50")
  private String deliveryHouseNumber;

  /** 公司名 */
  @ExcelProperty("公司名")
  @Size(max = 50, message = "公司名长度不能超过50")
  private String deliveryCompany;

  /** 地址类型 */
  @ExcelProperty("地址类型")
  private String deliveryAddressType;

  /** 详细地址1 */
  @ExcelProperty("详细地址1")
  @Size(max = 50, message = "详细地址1长度不能超过50")
  private String deliveryAddress1;

  /** 详细地址2 */
  @ExcelProperty("详细地址2")
  @Size(max = 50, message = "详细地址2长度不能超过50")
  private String deliveryAddress2;

  /** 详细地址3 */
  @ExcelProperty("详细地址3")
  @Size(max = 50, message = "详细地址3长度不能超过50")
  private String deliveryAddress3;

  /** 发货仓库 */
  @ExcelProperty("发货仓库")
  @Size(max = 50, message = "发货仓库长度不能超过50")
  private String deliveryWarehouseName;

  @ExcelIgnore
  @Schema(title = "发货仓库")
  private String deliveryWarehouse;

  /** 物流方式 */
  @ExcelProperty("物流方式")
  @Size(max = 50, message = "物流方式长度不能超过50")
  private String deliveryLogisticsChannelLabel;

  @ExcelIgnore
  @Schema(title = "物流方式")
  private String deliveryLogisticsChannel;

  /** 客服备注 */
  @ExcelProperty("客服备注")
  @Size(max = 50, message = "客服备注长度不能超过50")
  private String remark;

  /** 订单金额 */
  @ExcelProperty("订单金额")
  @DecimalString(message = "订单金额小数格式不正确", label = "订单金额")
  private String totalAmount;

  /** 本次退款 */
  @ExcelProperty("本次退款")
  @DecimalString(message = "本次退款小数格式不正确", label = "本次退款")
  private String thisAmount;

  /** 已退款 */
  @ExcelProperty("已退款")
  @DecimalString(message = "已退款小数格式不正确", label = "已退款")
  private String refundAmount;
}
